Skip to content

feat: add now-playing drawer for quick track list access - #27

Merged
lstebner merged 4 commits into
mainfrom
feat/now-playing-drawer
Jul 9, 2026
Merged

feat: add now-playing drawer for quick track list access#27
lstebner merged 4 commits into
mainfrom
feat/now-playing-drawer

Conversation

@lstebner

@lstebner lstebner commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • Clicking the album art/name in the now-playing bar now opens a 420px drawer sliding in from the right, instead of navigating the main view away from whatever was being browsed.
  • The drawer shows the currently-playing album's metadata (art, title, artist, year, duration, rating) and full track list, with the same row styling/highlighting as the single-album view, live-following playback if it advances to a new album.
  • Closes via close button, backdrop click, or Escape.
  • Removed library.goToAlbum, which is now unused now that the now-playing bar no longer navigates the main view.
  • Sets up a natural home for future playlist queues (which won't have an albumId), since the drawer's open/close state is independent of library's album-selection state.

Test plan

  • npm run check — 0 errors, 0 warnings
  • npm run test — all passing
  • Manual: play a track, click the now-playing bar's album art — drawer slides in with correct metadata/track list and playing-track highlight
  • Manual: main view underneath is unchanged after opening/closing the drawer
  • Manual: clicking a track row in the drawer switches playback
  • Manual: close via X button, backdrop click, and Escape all work
  • Manual: drawer content updates live when playback advances to a new track/album
Screencast.from.2026-07-08.09-12-26.mp4

🤖 Generated with Claude Code

lstebner and others added 4 commits July 8, 2026 09:13
Clicking the now-playing bar's album art previously navigated the main
view away from whatever was being browsed. It now slides in a 420px
drawer showing the playing album's metadata and track list instead,
leaving the main view untouched — this also sets up a home for future
playlist queues, which won't have an albumId to navigate to.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ndings

Addresses code review feedback on the now-playing drawer:
- Extract AlbumHeader and TrackRow into src/lib/components/album/, shared
  by TrackTable and NowPlayingDrawer, instead of near-duplicated markup/CSS.
- Gate the drawer's track fetch on ui.nowPlayingDrawerOpen so normal
  playback no longer fires a background IPC call on every track/album
  change, and guard against a stale fetch overwriting newer results.
- Add library.findAlbumById (checks hidden albums too) so the header no
  longer silently disappears if the playing album has been hidden.
- Add focus management to the drawer: initial focus on the close button,
  a Tab focus trap, and focus restored to the trigger on close.
- Make the drawer mutually exclusive with the Settings/Device Sync panels.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Violates the project's minimum-font-size rule; color already
de-emphasizes it against the title without needing to shrink it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@lstebner
lstebner enabled auto-merge (squash) July 9, 2026 03:29
@lstebner
lstebner merged commit 8dfffca into main Jul 9, 2026
2 checks passed
@lstebner
lstebner deleted the feat/now-playing-drawer branch July 9, 2026 03:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant